package net.wwang.config;

import org.apache.log4j.*;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;


/**
 * @Description: 首页
 * @Author: WangWei
 * @CreateTime: 2020-06-23 11:03
 */
public class WwangUtilsHomeFrame extends JFrame implements ActionListener {
    private static Logger logger = Logger.getLogger(FileUpdateFrame.class);
    JFrame mainFrame;
    JPanel panel;
    //创建按钮
    JButton updateFileBtn = new JButton("批量修改文件");
    JButton updateJarBtn = new JButton("JAR去除签名");
    JButton signJarBtn = new JButton("JAR注册签名");
    JButton updateClassBtn = new JButton("修改字节码");

    public void showFrame() {
        mainFrame = new JFrame("WwangTools V1.0");
        //窗口宽度高度大小
        mainFrame.setSize(575, 550);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //固定窗口
        mainFrame.setResizable(false);
        Toolkit kit = Toolkit.getDefaultToolkit(); // 定义工具包
        Dimension screenSize = kit.getScreenSize(); // 获取屏幕的尺寸
        int screenWidth = screenSize.width / 2; // 获取屏幕的宽
        int screenHeight = screenSize.height / 2; // 获取屏幕的高
        int height = mainFrame.getHeight(); //获取窗口高度
        int width = mainFrame.getWidth(); //获取窗口宽度
        mainFrame.setLocation(screenWidth - width / 2, screenHeight - height / 2);//将窗口设置到屏幕的中部
        //窗体居中，c是Component类的父窗口
        //mainframe.setLocationRelativeTo(c);
        String str = "/net/wwang/static/wwang.jpg";
        Image myimage = kit.getImage(mainFrame.getClass().getResource(str)); //由tool获取图像
        mainFrame.setIconImage(myimage);
        inifPanel();//初始化面板
        mainFrame.add(panel);
        mainFrame.setVisible(true);
    }

    /* 创建面板，这个类似于 HTML 的 div 标签
     * 我们可以创建多个面板并在 JFrame 中指定位置
     * 面板中我们可以添加文本字段，按钮及其他组件。
     */
    private void inifPanel() {
        this.panel = new JPanel();
        panel.setLayout(null);
        //this.panel = new JPanel(new GridLayout(3,2)); //创建3行3列的容器
        /* 这个方法定义了组件的位置。
         * setBounds(x, y, width, height)
         * x 和 y 指定左上角的新位置，由 width 和 height 指定新的大小。
         */

        updateFileBtn.setBounds(20, 50, 120, 25);
        updateClassBtn.setBounds(150,50,120,25);
        this.panel.add(updateFileBtn);
        this.panel.add(updateClassBtn);
        //增加动作监听
        updateFileBtn.addActionListener(this);
        updateClassBtn.addActionListener(this);
    }


    /**
     * 关闭方法
     *
     * @param arg0
     */
    public void windowClosed(WindowEvent arg0) {
        System.exit(0);
    }
    public void windowClosing(WindowEvent arg0) {
        System.exit(0);
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        System.out.println(event.getActionCommand());
        if (event.getSource() == updateFileBtn) {
            mainFrame.setVisible(false);
            new FileUpdateFrame().showFrame();
            dispose();
        }else if(event.getSource() == updateClassBtn){
            mainFrame.setVisible(false);
            new ClassUpdateFrame().showFrame();
            dispose();
        }
    }

}
